package com.example.literj.kt.internal.operators

import com.example.literj.kt.core.Observer
import com.example.literj.kt.disposables.Disposable
import com.example.literj.kt.functions.Action
import com.example.literj.kt.functions.Consumer
import java.util.concurrent.atomic.AtomicReference

class LambdaObserver<T>(
    private val onNext: Consumer<T>,
    private val onError: Consumer<in Throwable>,
    private val onComplete: Action,
    private val onSubscribe: Consumer<T>
) : AtomicReference<Disposable>(), Observer<T>, Disposable {
    override fun onSubscribe(d: Disposable) {
        TODO("Not yet implemented")
    }

    override fun onNext(value: T) {
        TODO("Not yet implemented")
    }

    override fun onError(error: Throwable) {
        TODO("Not yet implemented")
    }

    override fun onComplete() {
        TODO("Not yet implemented")
    }

    override fun dispose() {
        TODO("Not yet implemented")
    }

    override fun isDisposed(): Boolean {
        TODO("Not yet implemented")
    }
}